package com.yeren.thread.Volatile;
/**
 * 1.可见性（无原子性）,还是会存在线程安全问题
 */
public class VolatileDemo2 {

	public static volatile int count = 0;

	public static void inc() {
		// 这里延迟1毫秒，使得结果明显
		count++;
		try {Thread.sleep(1);} catch (InterruptedException e) {}
	}

	public static void main(String[] args) {
		// 同时启动1000个线程，去进行i++计算，看看实际结果
		for (int i = 0; i < 1000; i++) {
			new Thread(new Runnable() {
				public void run() {
					VolatileDemo2.inc();
				}
			}).start();
		}

		// 这里每次运行的值都有可能不同,可能为1000
		System.out.println("运行结果:Counter.count=" + VolatileDemo2.count);
	}
}